package com.csz.control;

import com.csz.utils.Toolkit;
import java.text.DecimalFormat;
import java.util.ArrayList;
import java.util.List;

/**
 *
 * @author Leonardo
 */
public class Pesos {

    public List<Object[]>  calcularPesos(List<Object[]> pais, List qtdScores) {
        Integer idPais = 0;
        Double somaPorcentagem = 0.0;
        String nomePais = "";
        
        //Nova lista para retorno
        List<Object[]> listaPaises = new ArrayList();

        //setando a quantidade de scores para depois pegar a porcentagem do pais
        Object[] quantidade = (Object[]) qtdScores.get(0);

        //retirando a pontuacao de cada pais
        for ( Object[] paises : pais ) {
            if (idPais == 0) {
                idPais = (Integer)paises[0];
                //Somando!!!!! uhullll!!!
                nomePais = (String) paises[1];
                somaPorcentagem += (Double)paises[2];
            } else {
                if ( (Integer)paises[0] != idPais) {
                    //calculando a porcentagem do pais
                    somaPorcentagem = somaPorcentagem / (Long)quantidade[0];
                    //rá! formatar.format(somaPorcentagem)
                    Object[] ra = new Object[]{ idPais , nomePais,  Toolkit.formatador(somaPorcentagem) };
                    listaPaises.add(ra);
                    //passando a budega pra frente
                    idPais = (Integer) paises[0];
                    somaPorcentagem = (Double)paises[2];
                    nomePais = (String) paises[1];
                } else {
                    //Somando!!!!! uhullll!!!
                    somaPorcentagem += (Double)paises[2];
                }
            }
            //caso seja o ultimo
            if ( pais.indexOf(paises) == pais.size() - 1  ) {
                //calculando a porcentagem do pais
                somaPorcentagem = somaPorcentagem / (Long)quantidade[0] ;
                //rá!
                Object[] ra = new Object[]{ idPais , paises[1] , somaPorcentagem };
                listaPaises.add(ra);
            }
        }
        return listaPaises;
    }

}
